<?php


namespace app\controller;


use think\facade\Request;
use think\facade\Validate;

class User
{
   public function index(){
       $data = [
           'name' => '郭浩佳',
           'price' => 190,
           'email' => 'xiaoxin163.com'
       ];

       $validate = new \app\validate\User();

       if(!$validate->scene('edit')->batch()->check($data)){  //batch() 批量异常
           dump($validate->getError());
       }
   }

   public function hear($id){
       return 'hear id:'.$id;
   }

   public function facade(){
       //验证  isRequre()是否为空  isNmuber() 是否是数字
      //dump(Validate::isEmail('123@qq.com'));  //邮箱是否合法
       //多规则验证
       dump(Validate::checkRule(11,'number|between:1,100'));
   }

   public function check(){
        $data =[
          'user' => Request::param('user'), // input(post.user)
            '__token__' => input('post.__token__'),
        ];
//        echo $data['user'];
      $validate = new \think\Validate();
      $validate->rule(
          ['user'=>'require|token'
              ]
      );
     if(!$validate->batch()->check($data)){
         dump($validate->getError());
     }
   }

   public function make(){
       dump(Validate::number(-10));  //是否是纯数字，非负数或非小数点
       dump(Validate::integer(-10));  //整数
       dump(Validate::chs('郭浩佳')); //纯汉字
       dump(Validate::activeUrl('www.baidu.com'));  //是否是有效域名 或 ip地址
       dump(Validate::url('https://www.baidu.com'));  //是否是有效URL地址
       dump(Validate::ip('10.10.0.118'));//是否是有效ip地址
       dump(Validate::dateFormat('2020-3-1 12:01:01','Y-m-d H:i:s'));

       dump(Validate::eq(100,1100));

       dump(Validate::regex(100000,'\d{6}'));  //正则表达式验证

       dump(Validate::file(Request::file('image')));

       dump(Validate::image(Request::file('image'),'600,895,jpg'));

       dump(Validate::fileExt(Request::file('image'),'png,gif,jpg')); //判断后缀
       // filesize 判断文件允许大小  fileMime 判断文件允许的文件类型
       //内置规则见文档
   }
}


//use think\Controller;
//
//class User extends Controller {
//
//     //默认情况下 一旦有数据验证码不符合规则，就立刻停止验证进行返回
//     //如果，我们要验证所有的错误信息，那需要手动设置开启
//     protected $batchValidate = true;
//
//     //默认情况下，验证失败后不会抛出异常，需要手动设置，如下
//    protected $failException = true;
//      public function index(){
//          $result = $this->validate([
//              'name' => '郭浩佳',
//             'price' => 190,
//             'email' => 'xiaoxin163.com'
//          ],'\app\validate\User.edit');
//
//          if($result !== true){
//              dump($result);
//          }
//      }
//  }


//
//use think\Validate;
//use think\validate\ValidateRule;
//
//class User{
//    public function alon(){
//        $data = [
//            'name' => 'lalalal',
//           'price' => 90,
//            'email' => 'xiaoxin@163.com'
//       ];
//        $validate =new Validate();
////        $validate->rule([
////            'name|用户名' => 'require|max:10',  //不得为空，不得大于10位
////            'price' => 'number|between:1,100',  //必须是数值,1-100之间
////            'email' => 'email'  //邮箱格式
////        ]);
//
//        //独立验支持对象化的定义方式，但不支持在属性方式的定义
//        $validate->rule([
//           'name' => ValidateRule::isRequire()->max(10),
//            'price' => ValidateRule::isNumber()->between('1,100'),
//            'email' => ValidateRule::isEmail()
//        ]);
//        $validate->message([
//            'name.require' =>'用户名不得为空',
//            'name.max' => '姓名不得大于20位',
//            'price.number' => '价格必须是数字',
//            'price.between' => '价格必须1-100之间',
//            'email' => '邮箱的格式错误'
//        ]);
//        if(!$validate->batch()->check($data)){
//            dump($validate->getError());
//        }
//    }
//}


//use think\Validate;
//
//class User{
//    public function bibao(){
//
//        $data = [
//             'name' => '蜡笔小新',
//             'price' => 90,
//             'email' => 'xiaoxin@163.com'
//       ];
//
//        $validate = new Validate();
//        $validate->rule([
//           'name' => function($value,$data){
//             return $value != ''? true : '姓名不可以为空!';
//           }
//        ]);
//
//        if(!$validate->batch()->check($data)){  //batch() 批量异常
//           dump($validate->getError());
//        }
//    }
//}